package com.coderman.infosys.auth.domain.gataway;

import com.coderman.infosys.auth.domain.bo.BaseBOV2;
import com.coderman.infosys.auth.domain.enums.BOIdentiferEnum;
import com.coderman.infosys.plat.auth.common.bo.BaseBO;

import java.util.List;

/**
 * Description: 这里我们可能不是所有的缓存对象都有增删改查，所以
 * 就定义一个接口列表，一个实现类，内部做路由即可
 * date: 2022/1/18
 *
 * @author shenshuai
 * @version 1.0.0
 * @since JDK 1.8
 */
public interface CacheServiceGataWay {

    /**
     * 初始化缓存或者更新缓存
     * @param boIdentiferEnum
     * @param bo
     */
    void put(BOIdentiferEnum boIdentiferEnum, BaseBO bo);

    /**
     * 根据标示获取缓存对象
     * @param boIdentiferEnum
     * @param identifer
     * @return
     */
    BaseBO get(BOIdentiferEnum boIdentiferEnum, String identifer);

    /**
     * 根据实体获取所有改实体的缓存数据
     * @param boIdentiferEnum
     * @return
     */
    List<BaseBO> getList(BOIdentiferEnum boIdentiferEnum);

    /**
     * 删除缓存
     * @param boIdentiferEnum
     * @param identifer
     * @return
     */
    Boolean remove(BOIdentiferEnum boIdentiferEnum, String identifer);

}
